package com.ls.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ls.controller.user.model.*;
import com.ls.entity.SysUser;
import com.ls.utils.ResultData;

import java.io.IOException;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author pengyu
 * @since 2022-09-13
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 根据账号查询用户
     *
     * @param phone 账号
     * @return User
     */
    SysUser findUserByPhone(String phone);
    /**
     * 首次登录后调用此接口 设置新密码和密保手机号
     * */
    ResultData setInitInfo(InitModel model);
    /** getSmsVerifyCode phone 用户手机号  type 验证码类型 0 本号码 1 密保手机*/
    ResultData getSmsVerifyCode(String phone ,int type) throws Exception;
    /**
     * 忘记密码 - 忘记密码重置
     * */
    ResultData reSetPwd(ReSetPwdModel model);
    /**
     * 修改密码
     * */
    ResultData updatePwd(UpdatePwdModel model);
    /**
     * 获取下一个手机号码，用于测试开户
     * */
    String getNextPhoneNumber();
    /**
     * 校验phone在库里是否存在，不存在就抛异常
     * */
    void checkUserByPhone(String phone);
    /** 查询用户列表 超级管理员 客服 省份管理员 代理商 */
    ResultData getPaging(QueryUserModel model);
    /**通过代理商编码来找到对应的代理商user */
    /** 用户有效状态变更 */
    ResultData updateStatus(UpdateStatusModel model);
    /** 新增用户 */
    ResultData add(AddUserModel model);
    /** 修改用户 */
    ResultData update(UpdateUserModel model);
    /** 通过用户id 或 企业id  查询用户信息的接口 数据库同步操作 */
    ResultData getByUserId(Long userId);

}
